/*
  某学校举行运动会,学生们按编号（1、2、3.....n)进行标识,
  现需要按照身高由低到高排列，
  对身高相同的人，按体重由轻到重排列，
  对于身高体重都相同的人，维持原有的编号顺序关系。
  请输出排列后的学生编号
  输入描述：
     两个序列，每个序列由N个正整数组成，(0<n<=100)。
     第一个序列中的数值代表身高，第二个序列中的数值代表体重，
  输出描述：
     排列结果，每个数据都是原始序列中的学生编号，编号从1开始，
  实例一：
     输入:
      4
      100 100 120 130
      40 30 60 50
     输出:
      2134
  */
const test = (input) => {
    let inputArr = input.split("\n").map(t => t.trim())
    console.log(inputArr)
    let [n, stature, weight] = inputArr
    let statureArr = stature.split(" ")
    let weightArr = weight.split(" ")
    let sortFn = (a, b, fields) => {
        if (Array.isArray(fields)) {
            let field = fields[0]
            if (a[field] > b[field]) {
                return 1
            } else if (a[field] < b[field]) {
                return -1
            } else {
                if (fields.length > 1) {
                    return sortFn(a, b, fields.slice(1))
                } else {
                    return 0
                }
            }
        }
    }

    let students = Array.from({ length: n }, (t, i) => {
        return {
            id: i + 1,
            stature: statureArr[i],
            weight: weightArr[i]
        }
    }).sort((a, b) => sortFn(a, b, ['stature', 'weight', 'id']))
    console.log(students)
    console.log(students.map(t => t.id).join(""))

}

test(`4
  100 100 120 130
  40 30 60 50`)


test(`5
  100 100 100 120 130
  40 40 30 60 50`)